﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Gasgoo.ShareLibrary.Framework.iDataProvider
{
    public interface IDataStorageProvider
    {
        Task<object> GetAsync(string grainType, string key, string keyExtension, Type stateType);
        Task AddOrUpdateAsync(string grainType, string key, string keyExtension, object state, Type stateType);
        Task RemoveAsync(string grainType, string key, string keyExtension, object state);
        Task<List<T>> QueryableAsync<T>(Queryable<T> queryable) where T : AbstractDataEntity;
    }
}
